//
//  RCLoginView.swift
//  RCWeibo
//
//  Created by CL on 15/12/15.
//  Copyright © 2015年 CL. All rights reserved.
//

import UIKit
//MARK:
//MARK:代理
@objc protocol RCLoginViewDelegate {

    //MARK:
    //MARK:代理方法
    //如果要用可选方法，需要在protocol前面加@objc
    func userWillLogin()
    
    optional func userWillRegister()
    
}


//登录视图
class RCLoginView: UIView {
    //MARK:
    //MARK:属性
    /// 渐隐图
    @IBOutlet weak var backView: UIImageView!
    /// 圈圈图
    @IBOutlet weak var circleView: UIImageView!
    /// 大房子
    @IBOutlet weak var iconView: UIImageView!
    /// 提示文案
    @IBOutlet weak var tipLabel: UILabel!
    /// 设置代理属性
    var delegate: RCLoginViewDelegate?

    
    //从xib创建时候,必须实现这个
    required init?(coder aDecoder: NSCoder) {
        
        super.init(coder: aDecoder)
        
        print("我在这里咯")
        
        
    }
    
    //MARK:
    //MARK:对外提供设置游客界面信息的方法
    //
    func setWithInfo(tipText: String, imageName:String?){
    
        tipLabel.text = tipText
        //判断是否有imagename来区分首页
        if let name = imageName {
            
            circleView.image = UIImage(named: name)
            
            iconView.hidden = true
            
            backView.hidden = true
            
        } else {
        
            startAnimation()
            
        }
        
        
        
    }
    
    //设置动画
   private func startAnimation(){
    
        //设置动画效果为转圈圈
        let anim = CABasicAnimation(keyPath: "transform.rotation")
        //设置动画次数
        anim.repeatCount = MAXFLOAT
        //设置动画一次的时间
        anim.duration = 20
        //设置动到的数值
        anim.toValue = 2 * M_PI
        //完成动画或者离开活动状态的时候不移除动画
        anim.removedOnCompletion = false
        //添加动画
        circleView.layer.addAnimation(anim, forKey: nil)
    }
    
    
    //MARK:
    //MARK:按钮点击事件
    @IBAction func loginBtnClick(sender: UIButton) {
        //delegate后面的？表示是否有代理
        delegate?.userWillLogin()
        
    }
    
    @IBAction func register(sender: UIButton) {
        //在方法后面加上？ 表示如果判断代理是否实现这个方法
        //！表示一定实现了这个方法
        delegate?.userWillRegister?()
    }
    
    
    //MARK:
    //MARK:懒加载
    
    
    
}
